import axios from "axios";
import { ElMessage } from "element-plus";
import useUserStore from "@/store/modules/user";
// 第一：创建请求对象
const request = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_API,
    timeout: 10000,
})

// 第二: request拦截器
request.interceptors.request.use((config) => {
    // header属性请求头，给服务器携带公共参数
    // config.headers.
    let useStore = useUserStore();
    if (useStore.token) {
        config.headers.token = useStore.token
    }
    return config;
})

// 第三：response拦截器
request.interceptors.response.use((response) => {
    // 处理响应数据
    // 简化数据
    return response.data;
}, (error) => {
    // 处理响应错误
    let msg = '';
    let status = error.response.status
    switch (status) {
        case 401:
            msg = "token过期";
            break;
        case 403:
            msg = '无权访问';
            break;
        case 404:
            msg = "请求地址错误";
            break;
        case 500:
            msg = "服务器出现问题";
            break;
        default:
            msg = "无网络";

    }
    // 提示错误信息
    ElMessage({
        type: 'error',
        message: msg,
    });

    return Promise.reject(error);
})

export default request;